home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / f90 / dshiftl.z / dshiftl
Encoding:
Text File  |  2002-10-03  |  4.8 KB  |  115 lines

  1. DSHIFTL(3I)                                           Last changed: 4-13-99
  2.  
  3.  
  4. NNAAMMEE
  5.      __ddsshhiiffttll, DDSSHHIIFFTTLL - Performs a double-object left shift
  6.  
  7. SSYYNNOOPPSSIISS
  8.      C/C++:
  9.  
  10.      ##iinncclluuddee <<iinnttrriinnssiiccss..hh>>
  11.      lloonngg __ddsshhiiffttll ((lloonngg _i,, lloonngg _j,, lloonngg _k));;
  12.  
  13.      Fortran:
  14.  
  15.      DDSSHHIIFFTTLL (([II==]_i,, [JJ==]_j,, [KK==]_k))
  16.  
  17. IIMMPPLLEEMMEENNTTAATTIIOONN
  18.      C/C++:  UNICOS, UNICOS/mk
  19.  
  20.      Fortran:  UNICOS, UNICOS/mk, IRIX systems
  21.  
  22.      CF90, MIPSpro 7 Fortran 90
  23.  
  24. SSTTAANNDDAARRDDSS
  25.      C/C++ extension
  26.  
  27.      Fortran extension
  28.  
  29. DDEESSCCRRIIPPTTIIOONN
  30.      The __ddsshhiiffttll and DDSSHHIIFFTTLL functions perform a double-object left shift.
  31.      They return a single object.
  32.  
  33.      The result is derived from two arguments, _i and _j.  The arguments are
  34.      as follows:
  35.  
  36.      _i         The upper bits of the double object.  Must be of type
  37.                integer.
  38.  
  39.      _j         The lower bits of the double object.  Must be of the same
  40.                type and size as _i.
  41.  
  42.      _k         The number of bits to be shifted.  Must be of type integer.
  43.  
  44.      The __ddsshhiiffttll and DDSSHHIIFFTTLL functions return a value generated by a left
  45.      double-shift of the leftmost _k bits of _j into the rightmost _k bits of
  46.      _i.  If both the _i and _j arguments specify the same word in memory, a
  47.      circular shift occurs.  The value of _k must be in the range of 0
  48.      through 64 for __ddsshhiiffttll.
  49.  
  50. NNOOTTEESS
  51.    CC//CC++++
  52.      Because __ddsshhiiffttll is an intrinsic function, no externally visible
  53.      library function is available for it.  The compiler generates inline
  54.      code to produce the result.
  55.  
  56.    FFoorrttrraann
  57.      On UNICOS systems, _i and _j are 64-bit objects.  On UNICOS/mk systems,
  58.      _i and _j can be 32- or 64-bit objects.  On IRIX systems, _i and _j can be
  59.      8-, 16-, 32-, or 64-bit objects.
  60.  
  61.      When shifting 64-bit quantities, _i makes up bits 64 through 127 of the
  62.      double object.  The function result is the 64-bit string beginning
  63.      with bit 64-_k; that is, its leftmost bit is _k bits from the double
  64.      object's left end.  The value of _k must be 0 <= _k <= 64.
  65.  
  66.      When shifting 32-bit quantities, _i makes up bits 32 through 63 of the
  67.      double object.  The function result is the 32-bit string beginning
  68.      with bit 32-_k; that is, its leftmost bit is _k bits from the double
  69.      object's left end.  The value of _k must be 0 <= _k <= 32.
  70.  
  71.      When shifting 16-bit quantities, _i makes up bits 16 through 31 of the
  72.      double object.  The function result is the 16-bit string beginning
  73.      with bit 16-_k; that is, its leftmost bit is _k bits from the double
  74.      object's left end.  The value of _k must be 0 <= _k <= 16.
  75.  
  76.      When shifting 8-bit quantities, _i makes up bits 8 through 15 of the
  77.      double object.  The function result is the 8-bit string beginning with
  78.      bit 8-_k; that is, its leftmost bit is _k bits from the double object's
  79.      left end.  The value of _k must be 0 <= _k <= 8.
  80.  
  81.      Arguments are not altered in their original storage unless the result
  82.      represents the same address as either _i or _j, as in the Fortran
  83.      assignment MM == DDSSHHIIFFTTLL((MM,, NN,, 55)).
  84.  
  85.      For more information on storage units, see the _F_o_r_t_r_a_n _L_a_n_g_u_a_g_e
  86.      _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l, _V_o_l_u_m_e _3.
  87.  
  88.      DDSSHHIIFFTTLL is an elemental function.  The name of this intrinsic cannot
  89.      be passed as an argument.
  90.  
  91. RREETTUURRNN VVAALLUUEESS
  92.      __ddsshhiiffttll returns a 64-bit integer result.
  93.  
  94.      DDSSHHIIFFTTLL returns a typeless result on UNICOS and UNICOS/mk systems and
  95.      an integer result on IRIX systems.  The size of the result is the size
  96.      of the arguments _i and _j.
  97.  
  98. EEXXAAMMPPLLEESS
  99.      Fortran: The following figure shows a shift of two 64-bit quantities:
  100.  
  101.           |<-- Double quantity shifts left by _k bits
  102.  
  103.            127        _i              64 63        _j               0
  104.           |___________________________|___________________________|
  105.           |-----_k-----|----------result-----------|
  106.  
  107. SSEEEE AALLSSOO
  108.      A complete list of C/C++ intrinsic functions available on UNICOS and
  109.      UNICOS/mk systems is in the _C_r_a_y _C/_C++ _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l.
  110.  
  111.      _F_o_r_t_r_a_n _L_a_n_g_u_a_g_e _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l, _V_o_l_u_m_e _3
  112.  
  113.      _I_n_t_r_i_n_s_i_c _P_r_o_c_e_d_u_r_e_s _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l for the printed version of this
  114.      man page.
  115.